package 微服务.Docker_2.数据卷_5;

/**
 * 数据卷
 */
public class index {
    /**
     * 问题分析：<p>
     * docker容器里面的文件、数据都是与容器耦合在一起的<p>
     * 这个就会带来很多问题：<p>
     * 1、不便修改：我们要修改容器中的文件时，需要进入容器内部修改，而里面又没有高级的编辑工具，很不方便<p>
     * 2、数据不可复用：在容器内的修改对外是不可见的，所有的修改对新创建的容器都是不可复用的<p>
     * 3、升级维护困难：数据在容器内，如果要升级容器，必然要删除旧容器，所有数据都跟着被删除了<p></p>
     * <p>
     * 而数据卷就可以解决容器与数据耦合的问题<p></p>
     * <p>
     * 数据卷（volume）：是一个虚拟目录，指向宿主机文件系统中的某个目录<p>
     * 如，有一个DockerHost（docker主机）<p>
     * 在这个主机上，就会由docker来管理许多数据卷<p>
     * 所有的这些数据卷都会指向宿主机文件系统中的一个目录<p>
     * 这个目录就是：/var/lib/docker/volumes<p>
     * 也就是说，如果我们有一个名为html的数据卷，docker就会在这个目录下再创建一个名为html的目录<p>
     * 然后每一个数据卷都跟一个真实的数据卷映射<p>
     * 而容器在创建后就可以使用这些数据卷<p>
     * 我们可以让容器内部的文件目录与数据卷进行关联，而其实质是与宿主机的文件系统中的目录进行关联（这个目录称为挂载点）<p>
     * 如果对容器内的文件进行修改，那么docker就会立即修改宿主机里的文件<p>
     * 反之，如果文件系统里的文件被修改，容器内部的文件也立即会发生相同的修改<p></p>
     * <p>
     * 数据卷操作的基本语法：<p>
     * docker volume [command]<p>
     * 这是一个二级命令，docker volume是数据卷操作<p>
     * 根据命令后跟随的command来确定下一步的操作<p>
     * 常见命令如下：<p>
     * 1、创建一个volume：create<p>
     * 2、列出一个或多个volume的详细信息：inspect<p>
     * 3、列出所有的volume：ls<p>
     * 4、删除未使用的volume：prune<p>
     * 5、删除一个或多个指定volume：rm<p>
     *
     * @param args
     */
    public static void main(String[] args) {

    }
}
